def action_name(name=None, **kwargs):
    assert name is not None, (
        "@action_name() missing required argument: 'name'"
    )

    user_default = kwargs.get('user_default', False)

    def decorator(func):
        func.action_name = name
        func.user_default = user_default
        return func

    return decorator
